home *** CD-ROM | disk | FTP | other *** search
- ;
- ; This program originally available on the Motorola DSP bulletin board.
- ; It is provided under a DISCLAMER OF WARRANTY available from
- ; Motorola DSP Operation, 6501 Wm. Cannon Drive W., Austin, Tx., 78735.
- ;
- ; Lattice IIR Filter Macro.
- ;
- ; Last Update 31 Jul 86 Version 1.0
- ;
- latiir macro order
- latiir ident 1,0
- ;
- ; Lattice IIR filter macro
- ;
- ; Input value in register A, output value in register A
- ;
- ; Macro call:
- ; latiir order ;call macro
- ;
- ; where 'order' is the number of reflections coefficients
- ; in the filter.
- ;
- ; Alters registers: x0 x1 y0 a b, r0 r4, pc sr
- ;
- ; Uses 2 locations on stack
- ;
- ;
- move x:(r0)-,x0 y:(r4)+,y0 ;get first k, first state
- macr -x0,y0,a x:(r0)-,x0 y:(r4)-,y0 ;do first section
- do #order-1,_endlat ;do remaining sections
- macr -x0,y0,a b,y:(r4)+ ;a-k*s, save previous state
- move a,x1 y:(r4)+,b ;set a for mul, get st again
- macr x1,x0,b x:(r0)-,x0 y:(r4)-,y0 ;fnd nxt s, nxt s, nxt k
- _endlat
- move b,y:(r4)+ ;round; save second last state
- move x:(r0)+,x0 a,y:(r4)+ ;update r0, save last state
- endm
-